﻿using Levfier.Proccessors;
using Levfier.Proccessors.EQs;
using System;
using System.Windows.Media;

namespace Levfier.GUI.EditorControls.EQs
{
    /// <summary>
    /// LinearAmplifierControl.xaml の相互作用ロジック
    /// </summary>
    [Serializable]
    public partial class TenBandEQControl : ProccessorControl
    {
        /// <summary>
        /// コントロールの名前
        /// </summary>
        public static readonly string ControlName = "10 Band";

        /// <summary>
        /// コンストラクタ
        /// </summary>
        public TenBandEQControl()
        {
            InitializeComponent();
            this.proccessor = new TenBandEQ();
        }

        /// <summary>
        /// 選択された時の動作
        /// 末端の子クラスで実装すること
        /// </summary>
        /// <param name="sender">イベント発生源</param>
        public override void Select(object sender)
        {
            this.border.BorderBrush = this.selectedBrush;
        }

        /// <summary>
        /// 選択解除された時の動作
        /// 末端の子クラスで実装すること
        /// </summary>
        /// <param name="sender">イベント発生源</param>
        public override void Unselect(object sender)
        {
            this.border.BorderBrush = Brushes.Transparent;
        }

        /// <summary>
        /// プロパティ画面を生成する
        /// </summary>
        /// <returns>プロパティ画面（縦）のコントロール</returns>
        public override System.Windows.Controls.UserControl GetPropertyEditorView()
        {
            IProccessable proccessor = this.GetProccessor();
            if (null != proccessor && 0 != proccessor.GetParameters().Count)
            {
                return new ProccessorPropertyEditorViewVertical(proccessor.GetParameters());
            }
            return null;  
        }
    }
}
